
(letL (({a b c} {list 1 2 3})) {list c b a})

;; => (3 2 1)

(letL (({a b c} {list 1 2})) {list c b a})

;; => ERROR

(lambdaL ({u v}) {list v u})

;; => (3 2 1)

((lambdaL ({a b c}) {list c b a}) 
 (list 1 2 3))

;; => (3 2 1)

((lambdaL ({a b c}) {list c b a})
 (list 1 2))

;; => ERROR 

(begin
  (defineL (p {a b c}) {list c b a})
  (p (list 1 2 3)))

;; => (3 2 1)

(begin
  (defineL (p {a b c} {d e}) {list c b a e d})
  (p {list 1 2 3} {list 4 5}))

;; => (3 2 1 5 4)

(begin
  (defineL (p {a b c} {d e}) {list c b a e d})
  (p {list 1 2 3} {list 4 5 6}))	

;; => ERROR

(unfold (lambdaL ({a b}) (> (+ a b) 10))
	(lambdaL ({a b}) (/ a b))
	(lambdaL ({a b}) (list (+ a 1) (+ b 1/2)))
	(list 1 1))

;; => (1 4/3 3/2 8/5 5/3 12/7)

(defineL (ptL-distance {x1 y1} {x2 y2})
  (hypotenuse (- x2 x1) (- y2 y1)))

(ptL-distance '{0 0} '{1 1})		

;; => 1.4142135623730951

(defineH (ptL-distance {x1 y1} {x2 y2})
  (hypotenuse (- x2 x1) (- y2 y1)))

(ptL-distance '{0 0} '{1 1})

;; => 1.4142135623730951

(ptL-distance '{0 0})

;; => <procedure>

((ptL-distance '{0 0}) '{1 1})

;; => 1.4142135623730951
